package com.alibaba.mapper;

import com.alibaba.define.domain.ArticleDO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author : hanyang
 * @date : 2023-10-29 13:00
 **/

@Mapper
public interface ArticleMapper {
    /**
     * 查询文章
     */
    List<ArticleDO> select(Map<String, Object> parameterMap);

    /**
     * 查询热门文章
     */
    List<ArticleDO> hotArticleList();

    /**
     * 查询所有正式发布的文章的分类id
     */
    List<Long> selectArticleCategory();

    /**
     * 分页查询文章
     */
    List<ArticleDO> articleList(Map<String, Object> parameterMap);

    /**
     * 查询一个分类的文章数量 为空是所有
     */
    Integer count(Map<String, Object> parameterMap);

    /**
     * 查询文章id和阅读数量
     */
    @MapKey("id")
    List<ArticleDO> queryIdAndViewCountList(@Param("status") String status, @Param("delFlag") Integer delFlag);

    /**
     * 批量更新redis中文章浏览量到db
     */
    Integer batchUpdateViewCount(List<ArticleDO> articleDOS);

}
